﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Manas.DynamicDeepZoom.Core;
using Manas.DynamicDeepZoom.CodeCamp.ItemModels;

namespace Manas.DynamicDeepZoom.Web.Services
{
    public interface IModelProvider
    {
        IModel GetModel();
    }

    public class ModelProvider : IModelProvider
    {
        #region IModelProvider Members

        public IModel GetModel()
        {
            var root = new CodeCampModel { Name = "Codecamp" };

            var timesOfDay = new TimeOfDayModel[]
                {
                    new TimeOfDayModel { Name = "Mañana", From = Hs(11,15), To = Hs(12,15) },
                    new TimeOfDayModel { Name = "Mediodía", From = Hs(12,30), To = Hs(13,30) },
                    new TimeOfDayModel { Name = "Tarde 1", From = Hs(15,0), To = Hs(16,0) },
                    new TimeOfDayModel { Name = "Tarde 2", From = Hs(16,15), To = Hs(17,15) },
                };

            var chats = new TalkModel[]
                {
                    //11:15 a 12:15
                    Talk("Viviendo Scrum", "Matias Iacono (MVP)", @"¿Qué es Scrum? ¿Qué beneficios nos otorga Scrum? ¿Qué necesito para hacer Scrum? Estas son preguntas que comúnmente nos hacemos cuando, en discusiones sobre gestión de proyectos de software, aparece este modelo. En esta charla intentaremos responder estas preguntas enfocándonos principalmente en los cambios de nuestra forma de pensar necesarios para sacar el mejor beneficio de Scrum."),
                    Talk("Introducción a ADO.NET Data Services", "Pablo Cibraro (MVP)", @" Durante la charla Pablo hablará de cómo crear servicios RESTful orientados a datos utilizando ADO.NET Data Services. Entre otras cosas, se discutirán conceptos básicos sobre servicios RESTful, y muchas de las características incluidas en este framework."),
                    Talk("Silverlight DeepZoom (contenido dinámico)", "Martín Verzilli y Santiago Palladino", @"Es habitual el uso de SilverLight DeepZoom para visualizar imágenes de gran tamaño y resolución sin sacrificar performance. En esta charla mostraremos cómo utilizar este atractivo control para presentar información jerárquica generada dinámicamente."),
                    Talk("Programando en Windows 7", "Rodolfo Finochietti y Miguel Saez", @"Windows 7 ofrece nuevas de API’s y servicios que ayudan a mejorar la experiencia del usuario. En esta sesión veremos cómo integrar algunas estas capacidades para mejorar nuestras aplicaciones."),
                    Talk("Arquitectura de SQL Server", "Diego González", @"La popular base de datos SQL Server tiene una historia muy larga y apasionante que tras diversas evoluciones se ha convertido en una de las bases de datos más usadas. A lo largo de su evolución ha incorporado distintas innovaciones, muchas de las cuales son características únicas de este producto sin paralelo en el mercado. A lo largo de esta presentación se demostrarán estas innovaciones, describiendo su arquitectura interna, componentes, procesamiento de consultas y otros temas que se cubren en la currícula de base de datos como ser procesamiento de transacciones, manejo de concurrencia, optimizaciones, índices entre otros. Se asume que los asistentes tienen un conocimiento básico de bases de datos."),
                    Talk("Terminal Services en Windows 2008 Server y sus clientes", "Matías Alfaro", @"Terminal Services en 2008. Implementación. Evolución del rol. Ts Gateway su implementación, TS Licences requerimientos e implementación, TS Remoteapp distribuir una aplicación remota msi y rdp, TS Broker y TS Web Access publicar mi aplicación en la web. Ejemplo Práctico. Diferentes tipos de implementación. Evolución de Redireccionamiento de dispositivos. Evolución Protocolo rdp. Seguridad en Terminal Services."),
                    Talk("Hyper-V para suegras", "Augusto Álvarez y Beto Ortega", @"Si tu suegra no sabe de que le hablan cuando Hyper-V sale en la mesa familiar, ésta es tu opotunidad. Hyper-V R2 hecho fácil, desde cero. Su arquitectura, sus capacidades, nuevas características y todo lo que tu suegra no puede dejar de saber para participar de las animadas discusiones técnicas entre vos y tus pares."),
                    Talk("Videojuegos multiplataforma", "Augusto Chesini y Sebastián Miserendino", @"Aprende a desarrollar un videojuego sacando partido a las nuevas tecnologías y jugálo en Windows 7, en Xbox 360, así como también en cualquier lugar con tu Zune utilizando para todo .Net y el poderoso motor de XNA 3. Enteráte también de las nuevas características de DirectX 11, Best Practices para publicar tus creaciones en Xbox LIVE Community Games, el Innovador Proyecto Natal, y mucho más."),                    
                    Talk("Monos y Manzanas: .NET para Mac", "Pablo Zaidenvoren y Sergio Borromei", @"Durante mucho tiempo las ventajas ofrecidas por la plataforma .NET solamente pudieron ser aprovechadas desde la familia de sistemas operativos Windows. Con la llegada de Mono, los desarrolladores encontraron la forma de poder crear ports de sus aplicaciones .NET existentes hacia horizontes nunca antes pensados. En esta sesión mostraremos como desarrollar aplicaciones MVC de escritorio, utlizando los controles nativos de OS X para crear la interfaz gráfica y programando los controllers y el modelo en C# con Mono."),
                    Talk("Contenido multimedia en Silverlight", "Santiago Leguiza y Daniel Priego", @"Cómo implementar aplicaciones multimedia en Silverlight. Veremos cómo funciona IIS7 Smooth Streaming y cómo podemos crear aplicaciones para visualizar videos HD. Qué es Silverlight Live Streaming y cómo podemos utilizarlo para alojar videos. Open Video y el estándar de reproductores de video, cómo crear un reproductor estándar de video. Silverlight 3 y el soporte para MPEG-4. Además veremos cómo crear un sencillo reproductor de MP3."),                    
                    Talk("WPF 4 Beta 1 Designer con Visual Studio 2010 Beta 1", "José Villagrán", @"WPF 4 para desarrolladores con Visual Studio 2010: mejoras en el acceso a Datos, facilidad de uso en las herramientas en cuanto a fontanería, IntelliSense, Diseñador y Esquema de Documento mejorados, entre otras funcionalidades."), 
                    Talk("Herramientas open source para desarrollo .NET", "Nicolás Paez", @"Adicionalmente a las herramientas provistas por Microsoft, la comunidad open source ha generado un importante abanico de herramientas cuyo uso puede resultar de gran utilidad a la hora de encarar nuestros desarrollos. Ejemplos emblemáticos de estas herramientas son Spring.NET, NHibernate, log4net, Moq y Castle Project entre otros. En esta sesión repasaremos las distintas problemáticas a resolver al construir aplicaciones de negocios, mencionando y comparando las distintas herramientas provistas por la comunidad open source para atacarlas."),
                    
                    //12:30 a 13:30                    
                    Talk("Arquitectura de Windows 7", "Diego González", @"Windows, al igual que cualquier otro sistema operativo, resuelve problemas que son comunes a todos los sistemas operativos y tiene una estructura general similar a otros SO. En la currícula tradicional universitaria se incluyen temas de sistemas operativos que por distintas razones no se conoce o menciona cómo funcionan en Windows. A lo largo de esta presentación se mencionarán temas como arquitectura del kernel, manejo de memoria, sistema de archivos, entre otros que permiten tener un conocimiento profundo del sistema operativo y entender su funcionamiento. Se asume que los asistentes tienen un conocimiento básico de sistemas operativos."),
                    Talk("Sitios web escalables con ASP.NET MVC", "Finochietti, Sánchez y Díaz Guerra", @"Una aplicación Web, sobre todo si esta expuesta en Internet, puede ser potencialmente consumida por cientos de clientes simultáneos, por lo tanto tener el control sobre el markup de salida es crucial. A su vez Internet impone otros requerimientos como URL amigables, o el correcto uso de los verbos HTTP. Durante la charla veremos cómo utilizar ASP.NET MVC y JQuery para desarrollar sitios escalables y que cumplen las buenas prácticas de programación Web."),
                    Talk("Aplicaciones Silverlight 3, LINQ y WCF", "Ivana Tilca", @"Ven a ver cuán magnificas son las experiencias de usuario de apliaciones de negocios, con resultados de productividad y soporte significativo en ahorro de costos. Aprende como utilizar Silverlight 3, display de datos, ingreso y validación avanzada en diseño de sitios web. Tour por Silverlight 3 formas pixeladas, perspectiva 3D, animación, y multimedia desde videos hasta música. También aprende sobre el framework adicional, mejoramiento de data binding, y demás novedades para servicios."),
                    Talk("Un arriesgado recorrido por las entrañas del nuevo Visual Studio 2010", "Víctor García Aprea y Daniel Cazzulino", @""),
                    Talk("Haciendo reportes en Reporting Service 2008", "Maximiliano Accotto", @"Mostraremos como con esta herramienta se la pueda utilizar tanto para nuestras aplicaciones como para informes empresariales y de gestión. En la charla veremos conceptos generales, diseño de reportes y consumo de los mismos."),
                    Talk("Lo nuevo de Windows Server 2008 R2", "Beto Ortega y Leandro Amore", @"Hemos invertido horas y horas en el sitio de What's New in Windows Server 2008 R2, pero te ahorramos el trabajo de ir a leerlo, vení a esta sesion donde un duo singular te traen esas novedades casi a la puerta de tu casa. Lo nuevo en seguridad, administración, Active Directory, y más a cargo de dos MVPs que seguro harán historia."),
                    Talk("Desmitificando Clustering en Windows Server 2008 R2", "Augusto Álvarez", @"Los servicios de clustering y de alta disponibilidad de servicios en un datacenter fueron considerados siempre un objetivo difícil de conseguir. En esta sesión veremos como usando las features brindadas nativamente por Windows Server 2008 y sumando las posibilidades gratuitas de terceros podemos lograr y configurar de manera sencilla nuestra infraestructura como escalable, de alto rendimiento, con equilibrio de carga y alta disponibilidad."),
                    Talk("Shaders en XNA", "José Ferrer", @"Fundamentos HLSL. ¿Puedo crear buenos efectos para mi juego?. Aprenderemos a crear e implementar sonidos en el desarrollo de juegos bajo la plataforma XNA, y con qué herramientas trabajar. Luego emprenderemos el viaje con ejemplos prácticos hacia el mundo de los efectos que se pueden aplicar a nuestros juegos utilizando HLSL."),                    
                    Talk("Funcionando con F#", "Martín Salías", @"Este nuevo lenguaje de Microsoft avanza en el terreno de la programación funcional, manteniendo la posibilidad de trabajar con objetos como su antecesor OCAML (con el que es compatible). Esta dualidad permite aprovechar todo el poder de este estilo de programación sin perder la capacidad de usar la enorme cantidad de librerías que la plataforma .NET provee tanto de fábrica como a través de terceros. En esta sesión veremos algunas de las claves principales del lenguaje, analizaremos los escenarios más típicos de uso y mostraremos algunos fuera del terreno “usual” de los lenguajes funcionales."),
                    Talk("El dúo dinámico (VS 2010 y C# 4.0)", "Pablo Zaidenvoren y Johnny Halife", @"Durante la charla veremos lo nuevo de C# 4.0 y Visual Studio 2010, demostrando los features introducidos por la nueva versión del lenguaje. Entre otros temas veremos cómo utilizar lenguajes dinámicos (como ruby y python) desde C# para agregar dinamismo a nuestra solución. Además veremos lo nuevo en parallel extensions y cómo aprovechar al máximo el hardware de última generación."),
                    Talk("Herramientas para Portales Corporativos en .NET: Web Parts", "Ricardo Miranda", @"Las organizaciones actuales deben posibilitar a sus miembros el acceso a información y conocimiento de diferente naturaleza y desde distintos sitios. Se necesitan herramientas para el trabajo colaborativo, en donde el conocimiento presente en cada una de las personas que integran una organización pueda fluir hacia su mejora e innovación. Los portales corporativos ofrecen un medio para integrar todas estas características, permitiéndoles a sus usuarios personalizar cómo y en donde aparecerá la información que ellos requieren. Su principal ventaja radica en que utilizan los distintos estándares de Internet para ofrecer servicios, lo cual les otorga una gran flexibilidad y adaptabilidad. Microsoft SharePoint introdujo en .NET las Web Parts; una caja de herramientas orientadas a la creación de aplicaciones web de esta naturaleza. Las Web Parts son un conjunto de bloques mediante los cuales se pueden construir portales, y los usuarios de éstos pueden seleccionar y personalizarlos de acuerdo a sus preferencias. Nos introduciremos en su creación y manejo, y mostraremos como ASP.NET nos provee de lo necesario para facilitarnos este trabajo."), 
                    Talk("Inteligencia Artificial con C#", "Marcelo Andrés Quevedo", @"Introducción a conceptos sobre inteligencia artificial con C#. Construyendo paso a paso una aplicación “inteligente” usando Lógica difusa."),
                    
                    //15:00 a 16:00   
                    Talk("Patrones de UX para hacer apps más usables", "Nicolás Castagnet y Diego Rivero", @"Cuando usamos una aplicación no vemos el código que hay por detrás, ni el diseño de base de datos, sino que utilizamos su interfaz. Los patrones de UX brindan buenas ideas que han sido aplicadas con éxito, y pueden ayudarnos a construir aplicaciones más usables. Analizaremos algunos de estos patrones y mostraremos también Quince, un catálogo que puede ayudar a descubrirlos."),
                    Talk("ASP.NET 4.0 con VS 2010", "Ignacio López, Pablo Aliscioni y Hernán Nóbile", @"ASP.NET es uno de los frameworks de desarrollo web más utilizados en la actualidad con un potencial que no pasa desapercibido en su nueva versión. En esta charla introduciremos algunas de las características que nos trae la versión 4.0:
    * Actualización de servicios core como output caching, auto-start de aplicaciones y reducción del session state.
    * Nuevas funcionalidades AJAX que nos permitirán implementar live data binding y utilizar patrones con JavaScript.
    * Mejoras en el desarrollo de Web Forms y Dynamic Data para construir aplicaciones orientadas a datos.

Realizaremos también ejemplos de uso práctico y discutiremos sobre sus ventajas y recomendaciones de uso. Así mismo, veremos como las nuevas características de Visual Studio 2010 y su integración con ASP.NET 4 nos permitirán agilizar los procesos de deployment y distribución de aplicaciones y lograr un mayor nivel de productividad en el desarrollo de aplicaciones Web."),
                    Talk("Cocinando una app Silverlight 3 en una hora", "Federico Lois y Daniel Iglesias", @"Programaremos una aplicación co-operativa multiusuario usando Silverlight 3 en vivo. Usaremos una arquitectura MVVM (Model-View-ViewModel), Duplex Polling en WCF, LINQ, Canvas y soporte de dibujado de líneas. No se desarrollará el servidor en vivo, pero si se mostrará cómo fue implementado."),
                    Talk("Beneficio de IE8 para Developers", "Juan Ladetto", @""),
                    Talk("Explorando Windows Azure Services", "Carlos Peix y José Mariano Álvarez", @"Demostración de la construcción y despliegue en vivo de una aplicación sencilla en Azure Services, haciendo foco en la visión del desarrollador. Se demostrará el ciclo de desarrollo y técnicas de despliegue específicas para la plataforma."),
                    Talk("Filtrando impurezas con AppLocker en Windows 7", "Ramón Romero y Leonardo Amaya", @"El uso de aplicaciones que no están testeadas y aprobadas, para el uso dentro de nuestra organización, pueden llegar a ser muy peligrosas para la integridad de la seguridad de nuestra infraestructura.  Hoy en día ejecutar programas es muy sencillo, se pueden bajar de internet, ejecutar desde medios extraíbles como son los dispositivos USB. La mejor manera de lidiar con estos problemas es creando una lista de programas que pueden ejecutarse. AppLocker es la herramienta que nos permite controlar que aplicaciones queremos que sean ejecutadas. Mostraremos los problemas que viene a resolver, como configurarlo y dejarla a punto con una demo."),
                    Talk("SMSE y el datacenter de tus sueños", "Beto Ortega, Leandro Amore y Martín Berra", @"Creímos que dos MVPS no alcanzarían para mostrarte todo cuanto SMSE puede hacer por tu datacenter, así que no pusimos dos, ¡pusimos dos MVPs y medio! Beto Ortega, Leandro Amore y Martin Berra te mostrarán en esta primera parte SCVMM y SCOM trabajando juntos coordinando la administración de tu datacenter de manera integrada, observá la mejor solución de management en acción integrando Vitual Machine Manager y Operation Manager R2."),
                    Talk("Las novedades de XNA 3.1", "Miguel Laborde", @"En esta charla veremos las novedades en la nueva versión de esta gran plataforma de desarrollo de videojuegos. Desde reproducción de videos, pasando por modificaciones en el Content Pipeline, hasta el manejo de tu Avatar."),
                    Talk("Herramientas de desarrollo y análisis de aplicaciones paralelas", "Arzhan Kinzhalin", @"Las modernas arquitecturas de computación están yendo cada vez más hacia el paralelismo, por lo tanto, para aprovechar al máximo el poder de las máquinas modernas, las aplicaciones de software deben ser pensadas, diseñadas y desarrolladas aplicando el concepto paralelismo. Construir una aplicación paralela semánticamente correcta y adecuadamente optimizada no es una tarea simple, especialmente con los paradigmas del programación concurrente disponibles actualmente. Para facilitar desarrollo de aplicaciones concurrentes, Intel ofrece una familia completa de herramientas que ayudan en las etapas de desarrollo y análisis semántico y de rendimiento. Durante esta presentación veremos las prestaciones de estas herramientas mediante ejemplos para ambientes de programación .Net/C#."),
                    Talk("Mega Datacenters (Windows Azure)", "Matías Woloski y Johnny Halife", @"¿Cómo son los datacenters de la era de cloud computing? ¿Dónde están? ¿Cómo y quiénes los operan? En esta sesión descrubriremos qué hay detrás de Windows Azure, sus primitivas de construcción y realiceramos una demo en vivo utilizando el equivalente a 25 máquinas (corriendo en la nube) para resolver una simulación de montecarlo desde el Excel 2007."),
                    Talk("Aplicaciones de .NET en la medicina", "Armando Andrés Meabe", @"Automatización de hemogramas sin implementación hardware nuevo en el laboratorio Tradicionalmente, el trabajo de realizar un hemograma se llevó a cabo por un bioquímico; ¡Contando glóbulos a ojo! Aún hoy, en el 2009, la única alternativa es recurrir a aparatos enormes y de precios desorbitados, por tanto solo los principales establecimientos médicos pueden costearlos… Hasta ahora. Sin innovar en materias de hardware, con el tradicional microscopio, cámara de Neubauer y el conector óptico digitalizador que se incluye como accesorio en muchos microscopios ¡El software puede hacer el resto! ahorrando horas de trabajo y lo que es más importante, el error humano. Presentamos el primero de nuestros desarrollos en Visual Studio 2010 enfocados a la medicina. Anexo; introducción a nuestro siguiente proyecto: Diagnóstico automatizado de aneurismas en la retina, sin innovaciones de hardware, en base al análisis óptico."), 
                    Talk("Mmm…Qué lenguaje hablan en Oslo?", "Diego Fidel Ferreyra", @"M no es un lenguaje más. Es el lenguaje en que se basará la futura plataforma de modelado de aplicaciones propuesta por Microsoft, más conocida como Oslo. Esta fuerte apuesta de Microsoft apunta a reducir el gap  existente entre la intención del desarrollador y los artefactos que son generados y ejecutados. Para esto,  Oslo plantea que las aplicaciones y servicios sean definidos y ejecutados a partir de su modelo, procesado en runtime para controlar el comportamiento del artefacto. Debido a esto, es que en esta charla nos centraremos en este nuevo lenguaje, debido a la importancia de M en el futuro de la construcción de aplicaciones basadas en plataforma Microsoft."),
                    Talk("¡Hora de hacer deploy en Silverlight! Sugerencias y trucos para un deplyment óptimo de tu aplicación Silverlight 3", "Leo Vernazza", @"Silverlight se trata de la experiencia del usuario, ¿pero estás teniendo en cuenta la experiencia COMPLETA del usuario? Muchos usuarios pueden ni siquiera tener Silverlight instalado o tener conexiones muy lentas a internet. Cuando desarrollas una aplicación compleja en Silverlight podés ver como tu Xap empieza a crecer y crecer. ¿Qué podés hacer para brindar una experiencia óptima?"),
                    
                    //16:15 a 17:15
                    Talk("Apps modulares en WPF y Silverlight con Prism", "Diego Poza y Ezequiel Jadib", @"¿Qué es Prism de patterns & practices y qué desafíos resuelve? ¿Qué beneficios les brinda a arquitectos, desarrolladores y a la interacción con diseñadores? En esta sesión mostraremos cómo Prism nos ayuda a trabajar en equipos distribuidos, no distribuidos, grandes o pequeños aplicando conceptos como TDD y patrones de UI como Model View ViewModel (MVVM). También mostraremos cómo nos ayuda a reusar código que funcione en WPF y en Silverlight."),
                    Talk("ASP.NET AJAX 4.0 Client Templates", "Brian J. Cardiff", @"En los últimos tiempos hubo grandes avances sobre las capacidades de los navegadores. Con ASP.NET AJAX 4.0 explotar estas funcionalidades se vuelve más fácil y menos propenso a errores. Veremos de qué es capaz Client Templates para desarrollar mejores aplicaciones AJAX."),
                    Talk("Silverlight en apps de Social NetWorking", "Adrián Eidelman y Rubén Altman", @"El uso de Silverlight en conjunto con las plataformas de desarrollo de redes sociales como Facebook y Twitter puede dar como resultado aplicaciones sumamente atractivas y de un alto impacto visual. En esta charla veremos algunos ejemplos utilizando Facebook Connect y Twitter API."),
                    Talk("Windows 7", "Alejandro Ponicke", @""),
                    Talk("Business Inteligence en SQL Server 2008", "Maximiliano Stibel", @""),
                    Talk("Office 2010", "Mariano Rempel", @"Cuando muchos creen que Office 97 es lo suficientemente completo y que ya poco queda por hacer, est sesión mostrar cuánto queda aún por hacer para seguir siendo el líder en suites de oficina. Todo lo nuevo de Office 2010 en una charla sin concesiones."),
                    Talk("SMSE y el datacenter de tus sueños", "Beto Ortega, Leandro Amore y Martín Berra", @"System Center Configuration Manager y cómo resolver proactivamente las necesidades de tu datacenter para mantenerlo afinado como un violín y proteger toda tu infraestructura con SCDPM, la mejor opción para mantener la integridad de los datos incluyendo de Hyper-V permitiendo recuperar Maquinas Virtuales de la manera más eficiente."),
                    Talk("Desarrollo de juegos con XNA", "Ángel Arcoraci", @"Análisis e historia del desarrollo de juegos, cómo funcionan y cómo usar XNA para crear juegos desde cero. Análisis del content pipeline y ejemplo en vivo."),
                    Talk("Cómo sacar provecho de IIS 7.5", "Carlos Walzer", @"Habremos escuchado que Internet Information Server es una plataforma confiable para correr aplicaciones, pero: ¿por qué?. En esta charla evaluaremos todos las prestaciones brindadas por IIS, su modelo arquitectónico, desempeño, confiabilidad, administración, extensibilidad y soporte a diferentes tipos de aplicaciones."),
                    Talk("Construyendo el sistema operativo móvil del futuro", "Carlos A. Pérez", @"Comenzaremos por revisar todos los adelantos del nuevo Windows Mobile 6.5, y veremos las novedades poco conocidas del .NET CF 3.5. Veremos cómo programar accesos a funciones sencillas del teléfono utilizando las extensiones de móviles de Visual Studio. Visitaremos los internals de Windows Mobile que nos posibilitan que el dispositivo pueda consumir exitosamente los S+S que están por venir. Terminaremos viendo los potentes nuevos dispositivos de Windows Mobile, la nueva generación de hardware y debatiremos lo que podemos esperar en móviles con la irrupción reciente de la nueva generación de multiprocesamiento simétrico multinúcleo, su potencialidad y sus restricciones, y el desafío que esto nos plantea de cara al futuro, que ya es ahora."),
                    Talk("Apps de Tiempo Real con SVL y ASP.NET", "René Pastor Mogro y Facundo Castillo", @"Aprovechar de Silverlight 3 las nuevas características como las ya existentes para desarrollar una aplicación en tiempo real. Poder desarrollar con muy poco código una aplicacion donde el servidor envié datos al cliente sin que haya un pedido previo. Características de este tipo de aplicaciones. Ventajas y desventajas de esta tecnología..."),
                    Talk("Microsoft Surface", "Nicolás Padula y Mauro Castagnasso", @"Microsoft Surface nos acerca al nuevo paradigma de interfaces de usuario, donde las personas y los dispositivos interactúan de forma más natural con el software. Te mostraremos como desarrollar aplicaciones para esta plataforma utilizando el Microsoft Surface SDK 1.0 SP1. Exploraremos cómo responder a objetos físicos, a gestos y dedos, programar aplicaciones multiusuario y los nuevos desafíos que esto trae aparejado."),
                    Talk("ASP.NET MVC a full", "Matías Juan Rubí y Jonathan Solarz", @"Sacamos el jugo a ASP.NET MVC explotando sus features más interesantes, separación de responsabilidades, extensibilidad, y la facilidad para el TDD. En esta sesión nos sumergimos en el código para ver cómo se hace.") 
                };

            AppendChildren(root, timesOfDay, 0, 3);

            AppendChildren(timesOfDay[0], chats, 0, 11);
            AppendChildren(timesOfDay[1], chats, 12, 23);
            AppendChildren(timesOfDay[2], chats, 24, 36);
            AppendChildren(timesOfDay[3], chats, 37, 49);

            return root;
        }

        private static DateTime Hs(int hour, int minutes)
        {
            return new DateTime(2009, 9, 26, hour, minutes, 0, 0);
        }

        private static TalkModel Talk(string title, string authors, string description)
        {
            var talk = new TalkModel { Name = title, Authors = authors };
            talk.Children.Add(new TalkDescriptionModel { Name = title, Authors = authors, Description = description });
            return talk;
        }

        private static void AppendChildren(Model parent, Model[] children, int from, int to)
        {
            for (int i = from; i <= to; i++)
            {
                parent.Children.Add(children[i]);
            }
        }

        #endregion
    }
}
